#ifndef _MAPTEST_H
#define _MAPTEST_H

#include "CStateManager.h"
#include "CTexture.h"
#include "CResourceManager.h"
#include "CAnimatedObject.h"
#include "CCamera.h"
#include "CTileLayer.h"
#include "CMapReader.h"
#include "CPlayer.h"
#include "CRocky.h"
#include "CBugky.h"
#include "CQuadTree.h"
#include "CEffect.h"


class CSprite;
class CAnimation;
class CResourceManager;
class CCamera;
class CTileLayer;
class CPlayer;
class CRocky;
class CBugky;
class CQuadTree;
class CEffect;

class MapTest : public IGameState
{
public:
	//--------------------------------------------//
	//	Constructor and Destructor for this class //
	//--------------------------------------------//
	MapTest(CStateManager *state);
	~MapTest();

	//--------------------------------//
	//	Public methods for this class //
	//--------------------------------//
	void	Init		();
	void	Update		();
	void	Render		();
	void	Destroy		();
private:
	//-----------------------------------//
	//	Private variables for this class //
	//-----------------------------------//
	CTileLayer			 *m_pTiledLayer;
	CCamera				 *m_pCamera;
	CPlayer				 *m_pObject;
	CMapReader			 *m_pMapReader;
	CQuadTree			 *m_pQuadTree;
	std::vector<CMob*>	  m_listMob;
	


	//---------------------------------//
	//	Private methods for this class //
	//---------------------------------//
	void		ProcessInput		();
	void		ProcessCamera		();
	void		ReadRaw				();
	void		ProcessObject		();
};




#endif